A. Field of the Invention
The present invention relates to a disc array apparatus providing a plurality of disc drives, and to a disc array controller controlling data read/write operations by operating the plurality of disc drives in parallel.
B. Description of the Related Art
The related art will be explained with reference to the accompanying drawings.
1. Explanation of disc array apparatuses
FIG. 1 is an explanatory diagram of a disc array apparatus 7 of the related art. The disc array apparatus 7 is typically coupled to a host computer 1, as shown in FIG. 1. The disc array apparatus 7 is an external memory device or auxiliary memory device which has realized high speed data read/write operations by parallel operation of a plurality of magnetic disc drives (e.g hard disc drives) comprised therein and also has improved reliability through introduction of a redundant structure. Throughout the following explanation, the magnetic disc drive (or hard disc drive) is referred only to as a disc drive.
The structure of the disc array apparatus 7 of the related art is shown in FIG. 1. The disc array apparatus 7 is structured by a disc array controlling device 2 connected to a host computer 1 and a plurality of disc drives 6-1, 6-2, 6-3, . . . , 6-m, 6-n (n=m+1) forming a Redundant Array of Inexpensive (or Independent) Discs (RAID). Details of RAID are explained below. Moreover, the disc array controlling device 2 is provided with a host adapter 3, a disc array controller 4, and a plurality of device adapters (DA) 5-1, 5-2, 5-3, . . . , 5-m, 5-n.
As explained previously, the disc array apparatus 7 is operated through connection to the host computer 1. In this case, the host computer 1 and the host adapter 3 of the disc array controlling device 2 are connected to each other by an interface cable (for example, a SCSI-2 cable). The host adapter 3 executes interface control for the disc array apparatus 7 to the host computer 1, while the disc array controller 4 executes various controls during data read/write operations to the disc drives 6-1 to 6-n. The device adapters (DA) 5-1 to 5-n respectively control the disc drives 6-1 to 6-n during the data read/write operations based upon an instruction from the disc array controller 4.
To the host computer 1, the disc array apparatus 7 appears as a single disc drive. For example, in the disc array apparatus 7 of FIG. 1, when the host adapter 3 receives data (herein after referred to as host data) from the host computer 1, host adapter 3 in turn transmits the host data to the disc array controller 4. The disc array controller 4 divides the data into a plurality of divided data, then stores the divided data into a plurality of disc drives 6-1 to 6-m (which are disc drives allocated to storing data in, for example, RAID level 3) through the device adapters 5-1 to 5-m, generates parity data for the divided data, and stores the parity data in the remaining, single disc drive 6-n (which is a disc drive allocated to parity) via the device adapter 5-n.
As explained above, the disc array apparatus 7 of FIG. 1 realizes a higher number of read/write operations than that of a single disc drive and improves the reliability of the data being read and written by simultaneously dividing a large amount of data for storage data among a plurality of disc drives and by simultaneously reading data from a plurality of disc drives. Therefore, the disc array apparatus 7 of FIG. 1 can realize higher performance than can a single disc drive.
2. Explanation of RAID
RAID is explained in The RAIDBook, A Source Book for RAID Technology, Edition 1--1, published by the RAID Advisory Board, St. Peter, Minn., Nov. 18, 1993, and incorporated herein by reference.
A disc array apparatus is a system which realizes higher reliability and performance than that of an individual disc drive by introducing and using a plurality of disc drives (such as hard disc drives) to store data. This disc array apparatus is referred to as RAID (Redundant Array of Inexpensive Disks, or Redundant Array of Independent Disks). RAID was proposed in 1987 by Prof. David A. Patterson of the University of California at Berkeley, and is a name derived from the thesis of Prof. Patterson.
As described previously, the disc array system implementing RAID realizes high speed access of a large amount of data using many disc drives and provides redundancy of data to minimize data loss when a disc drive fails. RAID is classified into levels 1 to 5 (hereinafter, such levels are referred to as, for example, RAID-1, RAID-2, RAID-3, RAID-4, and RAID-5, and as RAID level 1, RAID level 2, RAID level 3, RAID level 4, and RAID level 5, respectively). Parity data used in recovering the data if a disc drive fails is provided in RAID level 3 to RAID level 5 (RAID-3, RAID-4 and RAID-5). In RAID, the dividing of input data and the storing of the input data in corresponding positions across all members of a disc array is referred to as striping.
In RAID level 4 (RAID-4) and RAID level 5 (RAID-5), a plurality of simultaneous read operations is possible and, moreover, in RAID level 5 (RAID-5), a plurality of simultaneous write operations is also possible, resulting in an effective and large amount of transaction processing without dedicating one, particular disc drive to storing parity data.
3. Explanation of RAID levels
FIGS. 2(a) and 2(b) are explanatory diagrams of RAID levels. FIG. 2 (a) shows data transfer (write operation) in RAID-3. FIG. 2 (b) shows data transfer (write operation) in RAID-5. In FIGS. 2(a) and 2(b), disc array apparatus 7 comprises the host adapter 3, the disc array controller 4, a plurality of the device adapters (DA) 5-1, 5-2, 5-3, 5-4 and 5-5, and a plurality of disc drives 6-1 to 6-5.
(1) Explanation of RAID-1
RAID-1 is a mirrored disc structure in which all disc devices storing data are duplicated. In the mirrored disc structure of RAID-1, the same data is written into two disc drives. Therefore, the disc drive configuration of RAID-1 requires two discs for each disc of data stored, and results in double the cost of a non-mirrored disc drive configuration but is most simple in structure and has been used widely. Regarding the performance of RAID-1, the execution time may be slightly increased over that of a single disc drive during a data writing operation because the writing of data is performed to two disc drives. However, since a data read operation is executable in principle when any one of the disc drives is in an idle condition and may read the requested data from either of the disc drives storing the data in RAID-1, performance during reading of data is improved in RAID-1 over performance during the reading of data from a single disc.
(2) Explanation of RAID-2
In RAID-2 level, the input data is divided (striped), and the divided data are distributed and stored into a plurality of disc drives through an interleave process. In RAID-2, a disc drive storing an error correction code for the divided data is defined as a redundant disc drive, and the data stored in such a redundant disc drive is defined as the Hamming code.
Also in RAID-2 level, when four disc drive units are used for storing data, three disc drive units may be required for storing the error correction code. In addition, in RAID-2, four disc drive units storing correction codes are required for ten disc drives used for storing data, and five disc drives storing correction codes are required for 25 disc drives used for storing data. RAID-2 disc drives are characterized in that data is not lost if a fault occurs, even in a plurality of disc drives. Therefore, as explained above, a problem arises with RAID-2 that a plurality of redundant disc drives are required because a substantial amount of data is stored. The substantial amount of data which is stored needs to be reduced.
(3) Explanation of RAID-3
In RAID-3, the input data is divided (through striping), and the divided data is distributed and stored in a plurality of disc drives through an interleave operation. In RAID-3, the disc drive storing the error correction code for the divided data is defined as a redundant disc drive, and the data stored in the redundant disc drive is defined as parity data. Therefore, only one unit of the redundant disc drive (disc drive for parity data) is required for RAID-3, regardless of the number of units of the disc drives storing data, since redundant information is stored on a dedicated parity disc drive in RAID-3.
For example, in RAID-3, as shown in FIG. 2(a), data is read/written in parallel for a plurality of disc drives 6-1 to 6-4. One unit of a disc drive, such as disc drive 6-5 shown in FIG. 2(a), is provided to store parity. The data transfer rate of data between the disc array controller 4 and the disc drives is magnified by N times (in which N is defined as number of units of the disc drives storing data and operated in parallel), and is dependent upon a degree of parallel operation of the disc drives. Moreover, if a fault is generated in one disc drive, performance is not degraded. Further, if a fault occurs during data transfer, the data transfer operation can continue to execute.
(4) Explanation of RAID-4
In RAID-4, the data striping unit (dividing unit) in RAID-3 is organized into units of sectors, and can include 1 or several sectors. In RAID-3, as explained previously, since access is made at one time and in parallel to a plurality of disc drives, a distinctive effect on performance can be seen when access is made to units allowing for a certain degree of parallel operation. It is advantageous, however, for access to occur to small units of data, from the viewpoint of performance, to distribute the access to the individual disc drives. Accordingly, in RAID-4, data is independently written into each disc drive, but parity disc drives also store the parity data generated from the bits of data corresponding to each disc drive. In RAID-4, one parity disc drive stores the parity of the data in corresponding locations in the other, non-parity disc drives.
Therefore, if a fault occurs in one disc drive, data is not lost. The disadvantage is that access must be made to both the data disc drive and the parity disc drive when data is updated. Accordingly, the parity disc drive is considered to be a bottleneck.
(5) Explanation of RAID-5
In RAID-5, to eliminate concentrated access to the parity disc drive, which is a disadvantage of RAID-4, parity data is distributed across all disc drives in the disc array apparatus, such as disc drives 6-1 to 6-5 as shown in FIG. 2(b). However, when data is updated, access is still required to two disc drives. The process of read, generation of data, and write is also necessary because parity data can be generated, in principle, by obtaining a difference from the old data.
In addition, loss of data can be substantially eliminated by using the parity data. However, if one disc array apparatus fails, performance to the level of that of at least the original apparatus cannot be maintained. Performance cannot be maintained because all of the data of the remaining disc drives are used to regenerate the data of the defective disc drive. Therefore, RAID-5 is not suitable for a system like a continuously operating system, such as a fault tolerant system, in which the system as a whole is never stopped due to a fault generated in the disc array apparatus.
An example of the data transfer (write operation) of RAID-5 is shown in FIG. 2(b). As shown in FIG. 2(b), P0, P1, P2 and P3 are parities. Also as shown in FIG. 2(b), different disc drives (6-1 through 6-S, respectively) are used for storing parity for every sector group for generation of parity. Even in RAID-5, a striping unit is organized in units of sectors (1 or several sectors), as in the case of RAID-4.
During a data read operation using RAID-3 and RAID-5, parity data is not used in the conventional disc array apparatus, and the host data (the data to be transferred to the host computer; the host computer is not shown in FIGS. 2(a) or 2(b)) is restructured (recovered) from the data read from the disc drives other than the disc drive storing parity data. The host data is then transferred directly to the host computer. In a RAID-5 disc array apparatus, since a parity check is not executed during the read operation, if the data is varied or lost during the read operation, it cannot be detected, which lowers the reliability of the data. In RAID, stripe-by-stripe regeneration of data and parity is referred to as reconstruction. Therefore, restructuring (or recovery) of data and parity can be from reading the divided data directly from the disc drives storing the divided data, and/or through regeneration (when referring to a disc drive) or through reconstruction (when referring to recovery of data in a stripe across several disc drives).
Furthermore, if one disc drive fails, the host data is restructured (recovered) from the data read from the remaining disc drives other than the defective disc drive. In this case, the recovery of the host data using the parity data in the RAID is executed, in RAID-3 and RAID-5, by carrying out exclusive OR processing on the data of the remaining normal disc drives.
However, the disc array apparatus of the related art is typically not provided with a read parity check function of checking by utilizing the exclusive OR function whether or not matching between data and parity occurs during a data read operation, as in the present invention (which can restructure data even when matching does not occur during a read parity check). Even in an apparatus of the related art having a read parity check function, if matching of the read data does not occur during a read operation, the data to be recovered cannot be transmitted to the host.
For example, since normal RAID-5 functions in the related art do not use the parity disc drive when a read command is executed, RAID data integrity cannot be checked during normal RAID-5 functions in the related art. Even if someone attempts to check RAID data integrity at the RAID-5 level in the related art, the disc array apparatus of the related art can check only whether the RAID data integrity is acceptable.
Accordingly, the data is lost and the reliability of data in the disc array apparatus of the related art is reduced.